package com.dragoncombin.homework.Problem03;

public class Test {

    // 使用多态格式调用通话套餐和上网套餐的show方法
    public static void test(AbstractPackage ap) {
        ap.show();
    }
    public static void main(String[] args) {
        // 1. 声明通话套餐类型引用指向该类型的对象
        CallingPackage cp = new CallingPackage(150, 300, 29);
        // 2. 声明上网套餐类型引用指向该类型的对象
        NetworkPackage np = new NetworkPackage(2048, 19);
        // 3. 多态 - 作为参数传入，test方法将CallingPackage类型对象作为参数传入
        Test.test(cp);
        System.out.println("-------------------------------");
        // 4. 多态 - 作为参数传入，test方法将NetWorkPackage类型对象作为参数传入
        Test.test(np);

        System.out.println("-------------------------------");
        // 5. 声明手机卡类引用指向该类型的对象
        PhoneCard pcard = new PhoneCard(PhoneCardEnum.BIG, "12345678910", "Jackson", "abc123456", 100.0, 0, 0);
        // 6. 调用手机卡类成员方法show
        pcard.show();

        System.out.println("-------------------------------");
        // 7. 调用通信套餐类实现的通话服务接口中的service方法
        cp.service(15, pcard);

        // 8. 调用上网套餐类实现的上网服务接口中的service方法
        np.service(128, pcard);
    }
}
